From: Florian Müllner Date: Fri, 8 Mar 2013 20:04:15 +0000 (+0100) Subject: main: Do not export DBus interfaces before initializing the UI X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~4471 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=ec014a7ecf7cde01675773ef5571e8a1c79c72b4;p=gnome-shell.git main: Do not export DBus interfaces before initializing the UI Since commit 7cdb75e7ce76, initializing UI is deferred until the session mode has been loaded. However DBus is still initialized immediately, which means that for DBus methods that access properties in Main, there is now a window between the method being exposed on the bus and the method being ready to be called. At least g-s-d grabbing global keybindings is likely to fall in this window on session startup, and almost guaranteed when regrabbing bindings after a shell restart. To fix, defer initializing DBus as well. https://bugzilla.gnome.org/show_bug.cgi?id=694321 --- diff --git a/js/ui/main.js b/js/ui/main.js index ca4d49e06..f43811414 100644 --- a/js/ui/main.js +++ b/js/ui/main.js @@ -99,9 +99,6 @@ function start() { Gio.DesktopAppInfo.set_desktop_env('GNOME'); - shellDBusService = new ShellDBus.GnomeShell(); - shellMountOpDBusService = new ShellMountOperation.GnomeShellMountOpHandler(); - sessionMode = new SessionMode.SessionMode(); sessionMode.connect('sessions-loaded', _sessionsLoaded); sessionMode.init(); @@ -110,6 +107,10 @@ function start() { function _sessionsLoaded() { sessionMode.connect('updated', _sessionUpdated); _initializeUI(); + + shellDBusService = new ShellDBus.GnomeShell(); + shellMountOpDBusService = new ShellMountOperation.GnomeShellMountOpHandler(); + _sessionUpdated(); }